//商品分类的小仓库
//pinia:选择式API {}
//pinia:组合式API 函数
import { reqC1, reqC2, reqC3 } from "@/api/product/attr";
import { defineStore } from "pinia";
//引入商品分类ts数据类型
import type { responseData } from '@/api/product/attr/model/index';
import type { categoryState } from './interface/index';
let useCategoryStore = defineStore('category', {
    state: (): categoryState => {
        return {
            //存储一级分类的数据
            c1Arr: [],
            //收集用户选中的一级分类的ID
            c1Id: '',
            //存储二级分类的数据
            c2Arr: [],
            //收集用户选中的二级分类的ID
            c2Id: '',
            //存储三级分类的数据
            c3Arr: [],
            //收集用户选中的三级分类的ID
            c3Id: ''
        }
    },
    actions: {
        //获取一级分类的数据,找服务器要一级分类的数据
        async getC1Arr() {
            //发请求获取一级分类的数据
            let result: responseData = await reqC1();
            //仓库存储一级分类的数据:红色波浪线，是由于ts数据类型没有定义
            this.c1Arr = result;
        },
        //获取二级分类的函数
        async getC2() {
            //当一级分类的用户选择发生变化的时候:收集的二级、三级分类的数据清空
            this.c2Id = '';
            this.c3Id = '';
            this.c3Arr = [];
            //获取二级分类的数据,携带一级分类的ID
            let result: responseData = await reqC2(this.c1Id);
            this.c2Arr = result;
        },
        //获取三级分类的数据
        async getC3() {
            //当二级分类的下拉菜单发生变化的时候,触发当前这个函数
            //在清空三级分类的数据
            this.c3Id = '';
            let result: responseData = await reqC3(this.c2Id);
            this.c3Arr = result;
        }
    },
    getters: {}
})
export default useCategoryStore;






